; Grange Murder source, copyright (C) 1987 Level 9 Computing.
;
; TABLE.TXT, assembler format data for tables, a.k.a lists/arrays. 
; (Save the assembled data as TABLE.DAT). 
;
; You must start all DEFWs on EVEN boundaries, else subsequent code 
; seems to be padded to make it even (according to the GENST listing, 
; anyway). The EVEN directive inserts a padding byte if appropriate.
;
 ORG 0
starttables
 dc.l LIST1-starttables ; MOVEABLE OBJECT START
 dc.l $8400 ; OBJECT CURRENT
 dc.l $8400+MaxObject ; HI OBJECT CURRENT
 dc.l LIST4-starttables ; scenery table
 dc.l NPCINITIAL-starttables ; npc initial and 'floor pointers'
 dc.l $8400+LIST23SIZE ; 6 - NPC current attributes, stack
 dc.l $8400+LIST236SIZE ; 7 - output buffer,scoretable
 dc.l list8-starttables ; 8 - assorted fixed system tables
 dc.l $8400+LIST2367SIZE ; 9 - input table,object table
 dc.l ENDTABLE-starttables
;---
MaxObject EQU 189 ; should be two bigger than it really needs to be
NUMHIOBJ EQU MaxObject ; NO. OF OBJECTS WITH A HIGH POSITION
minnpc equ 1
maxnpc equ 64
npctablesize EQU (MaxNpc+1)*8
npcstacksize equ 260 ; 300
;
OUTPUTBUFFER EQU 32
SCORETABLE EQU 44 ;length of score table
OBJTABLE EQU 16 ; number of objects which can be specified on one line
;
LIST23SIZE EQU MaxObject+NUMHIOBJ
LIST236SIZE EQU LIST23SIZE+npctablesize+npcstacksize
LIST2367SIZE EQU LIST236SIZE+OUTPUTBUFFER+SCORETABLE+179+maxnpc+10
; 179 is num rooms
;---
; CONTAINER POSITONS
ON EQU 1
UNDER EQU 2
BEHIND EQU 3
CARRIED EQU 4
WORN EQU 5
PREPIN EQU 7
HANGINGFROM EQU 8 ; E.G. TREE
pushedby equ 11
LIEON EQU 12
SITON EQU 13
fastenedto equ 14
lyingon equ 15
;
; additions to high initial position
ita equ 0
itan equ $10 ; starts with a vowel
singularsome equ $20 ; "some cheese is tasy"
he equ $30
she equ $40
pluralsome equ $50 ; "some ropes are strong"
you equ $60
properMale equ $70
ProperFemale equ $70
; ProperFemale is handled by SpecialConjugate
;
;---
LIST1
arrivalroom equ 3 ; room before person's arrival at the Grange
 dc.b 0,0				; OBJECT 0
USER EQU 1
 dc.b 0+you,83			        ; 1 - USER (detective)
Sue equ 2
 dc.b 0+ProperFemale,arrivalroom	; 2 - Sue
Vera equ 3
 dc.b 0+ProperFemale,80			; 3 - Vera
Kathy equ 4
 dc.b 0+Properfemale,arrivalroom	; 4 - Kathy
Anthony equ 5
 dc.b 0+ProperMale,arrivalroom		; 5 - Anthony
William equ 6
 dc.b 0+ProperMale,arrivalroom		; 6 - William
Robert equ 7
 dc.b 0+ProperMale,94			; 7 - Robert
Fiona equ 8
 dc.b 0+ProperFemale,arrivalroom	; 8 - Fiona
Clifford equ 9
 dc.b 0+ProperMale,arrivalroom		; 9 - Clifford
Jarvis equ 10
 dc.b 0+ProperMale,86			; 10 - Jarvis
Inspector equ 11
 dc.b 0+ProperMale,arrivalroom		; 11 - Inspector
 dc.b 0,0		; 12
 dc.b 0,0		; 13
 dc.b 0,0		; 14
 dc.b 0,0		; 15
 dc.b 0,0		; 16
 dc.b 0,0		; 17
 dc.b 0,0		; 18
 dc.b 0,0		; 19

; breadknife only appears on vera once she's murdered sue
 dc.b 0,0		; 20 breadknife
 dc.b 0,0		; 21
 dc.b 0,0		; 22
 dc.b 0,0		; 23
 dc.b 0,0		; 24
 dc.b 0,0		; 25
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 

 dc.b 0,0		; 30
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 

 dc.b 0,0		; 40
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 

 dc.b 0,0		; 50
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 

 dc.b 0,0		; 60
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 

 dc.b 0,0		; 70
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 

 dc.b itan+worn,vera	; 80 apron
 dc.b 0,0		; 81 coat
 dc.b 0,0		; 82 coat 
 dc.b 0,0		; 83 coat 
 dc.b 0,0		; 84 coat 
 dc.b 0,0		; 85 coat 
 dc.b 0,0		; 86 coat 
 dc.b 0,64		; 87 coat 
 dc.b 0,64		; 88 coat 
 dc.b 0,64		; 89 coat 

 dc.b 0,0		; 90
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 

 dc.b 0,0		; 100
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 

Telephone equ 110
 dc.b 0,86		; 110
doorbell equ 111
 dc.b 0,47		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 

 dc.b 0,0		; 120
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
 dc.b 0,0		; 
EndObjects
;---
NPCINITIAL
; Lists 1,4 & 5 are now loaded seperately
List4 ; t.dat
list5 ; r.dat
list8 ; was PET table
;---
ENDTABLE
;---
 END

